package com.itheima.reggie.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;

/**
 * @BelongsProject: java8-reggie
 * @BelongsPackage: com.itheima.reggie.entity
 * @Author: lin
 * @CreateTime: 2022-10-24  20:02
 * @Description:
 * @Version: 1.0
 */
@Data
@TableName(value = "employee")
public class Employees {
    private static final long serialVersionUID = 1L; //序列化标识符，确保在不同编译器上反序列化的uid相等。
    private Long id;  // 用包装的long类型，包装可以防止传入null值，而long类型对应的是mybatis-plus的主键的雪花算法。
    //long类型的取值范围是19位，雪花算法生成的主键id也是19位。
    private String name;
    private String username;
    private String password;
    private String sex;
    private String idNumber;
    private Long phone;
    private Integer status;
    //在添加员工时，使用mp的自动填充功能，进行填充
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTable;
    //添加时候要自定填充，更新时候也要自动填充
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime uptateTable;
    @TableField(fill = FieldFill.INSERT)
    private Long createUser;
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long updateUser;
    //这是员工角色认证，多表查询的时候一个表收不完。
    @TableField(exist = false)
    private List<Role> roleList = new ArrayList<>();
}
